package satk.beans.interfaces;

/**
 * <h3>IntControlManagerDB.java</h3>
 * <div><em>Fecha de creación: 1/05/2011, 10:18:14 PM.</em></div>
 * <p></p>
 * @author Sergio Flores Genis <sf.cancun@gmail.com>
 */
public interface IntControlManagerDB<C> {

    /**
     * Obtiene todos los elemento que se encuentre en la consulta espesificada
     * @return 
     */
    public java.util.List<C> getAll();

    /**
     * Obtiene un solo elemetno de la consulta
     * @param id Identificadro del elemento
     * @return 
     */
    public C getById(long id);

    /**
     * Registre un nuevo elemento en la base de datos
     * @param o Elemento que se registra en la base de datos
     * @return Número de filas que se modificarón
     * @throws java.sql.SQLException Si ocurre un error al registrar el elemento
     */
    public int add(C o) throws java.sql.SQLException;


    /**
     * Actualiza un elemento en la base de datos
     * @param o Elemento con los datos antes de ser editados
     * @param n Elemento con los datos despues de ser editados
     * @return Número de filas afectadas
     * @throws java.sql.SQLException Si ocurre un error al actualizar el elemento
     */
    public int update(C o, C n) throws java.sql.SQLException;


    /**
     * Elminima un registro de la base de datos
     * @param o Elemento que se elimina
     * @return Número de filas afectadas
     * @throws java.sql.SQLException Si ocurre un error al registrar el elemento
     */
    public int remove(C o) throws java.sql.SQLException;
}
